<?php declare(strict_types=1);

namespace Zyucv7\Components\DataAccess\Uxts\Expert;

use Zyucv7\Components\DataAccess\BaseModel\Uxt;

/**
 * 专家任务表
 */
class Task extends Uxt
{
    protected $table = 'exp_task';

    // 查询所有关联
    public function allRelationQuery() {

        $query = $this->newQuery();
        $query->select('exp_task.*', 'u1.user_name AS task_handle_name', 'u2.user_name AS task_handle_add_name', 'u3.user_name AS create_by_name', 'project.proj_name AS project_name');
        // 多表连接时，可指定外联表的别名（u1 - 关联主负责专家）
        $query->join('LEFT JOIN ' . $this->getTableName('user', 'u1') . ' ON exp_task.task_handle=u1.user_id');
        // 多表连接时，可指定外联表的别名（u2 - 关联辅助专家）
        $query->join('LEFT JOIN ' . $this->getTableName('user', 'u2') . ' ON exp_task.task_handle_add=u2.user_id');
        // 多表连接时，可指定外联表的别名（u3 - 关联申请人）
        $query->join('LEFT JOIN ' . $this->getTableName('user', 'u3') . ' ON exp_task.create_by=u3.user_id');
        // 多表连接时，可指定外联表的别名（project - 关联项目组）
        $query->join('INNER JOIN ' . $this->getTableName('project') . ' ON exp_task.project_id=project.proj_id');

        return $query;
    }
}